/**
 * Copyright (C) 2025 pony working team
 * SPDX-License-Identifier: MulanPSL-2.0
 */

/* define to prevent recursive inclusion -------------------------------------*/
#ifndef __A_TRACE_H__
#define __A_TRACE_H__

/* includes (standard library, system) ---------------------------------------*/
/* includes (other library) --------------------------------------------------*/
/* includes (project) --------------------------------------------------------*/
#include "a_config.h"
/* includes (local) ----------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* defines -------------------------------------------------------------------*/
/* typedefs ------------------------------------------------------------------*/
/* macro ---------------------------------------------------------------------*/
/* inlines -------------------------------------------------------------------*/
/* externs -------------------------------------------------------------------*/

#ifdef CONFIG_TRACE
extern void back_trace(uint32_t sp, uint32_t lr, uint32_t pc);
extern void call_trace(void);
#else
#define back_trace(...)
#define call_trace(...)
#endif

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __A_TRACE_H__ */
